package com.hrzyit.whistle.user.presenter

import com.hrzyit.base.ext.execute
import com.hrzyit.base.presenter.BasePresenter
import com.hrzyit.base.rx.BaseObserver
import com.hrzyit.whistle.user.data.bean.UserInfo
import com.hrzyit.whistle.user.presenter.view.LoginView
import com.hrzyit.whistle.user.service.IUserService
//import rx.Observable
import javax.inject.Inject

/**
 * Presenter: 用户登录
 * @author YangWei
 * @date 2019/3/20
 */
class LoginPresenter @Inject constructor() : BasePresenter<LoginView>() {

    // Dagger2 注入 IUserService
    @Inject
    lateinit var userService: IUserService

    /**
     * 用户登录
     * @param account  姓名
     * @param mobile 手机号
     * @param pwd   密码
     * @param pushId    极光帐号id
     */
    fun login(mobile: String, account: String, pwd: String, pushId: String) {
        if (!checkNetWork()) {
            return
        }

        // 执行完成回调
        mView.showLoading()

        // 调用 IUserService.login 方法执行登录操作，返回对象 Observable 使用扩展方法 execute 处理操作结果
        userService.login(account, mobile, pwd, pushId)
            .execute(object : BaseObserver<UserInfo>(mView) {

                override fun onNext(t: UserInfo) {
                    mView.onLoginResult(t)
                }
            },lifecycleProvider)
    }
}